With the variety of web services available, a user has many choices for a particular Internet service. It is in a web service provider's best interest to distinguish itself from its competitors and ensure its web service provides a positive user experience. Additionally, many web service providers must meet service level agreements (SLA) for their clients. An SLA is an agreement specifying a service performance level that a service provider must adhere to. For example, an SLA may indicate a service provider is to provide a web service with ninety percent of its transaction response times being 200 milliseconds or less. To achieve a positive user experience and client expectations, many web service providers monitor their provided web service to determine any problems or delays in providing the service to users.
One way of measuring website performance is by reporting transaction information for an application which provides the web service. Metrics are typically recorded and averaged over time. Averaging transaction data for a website gives information regarding a period of time, but not detailed information for the specific transactions which occur over time. In particular, averaging data for website transactions causes a loss of granularity, and prevents administrators from realizing how different transactions exist and affect overall application performance.
The details of application performance data can be reported, but this requires significant processing power. Thus, reporting every detail of every transaction for a web service would adversely affect the performance of the web service. Additionally, when processing the entire set of application data to determine certain performance thresholds, the parameters to report are typically predefined. Thus, as different thresholds and parameters are processed, the code which implements the data processing may need to be changed for each implementation.